package com.newtouch.bxzs.common.base.model;

import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.io.Serializable;
import java.util.Date;

/**
 * <p>
 * <b>History:</b>
 * <table border="1">
 * <tr>
 * <th>Date</th>
 * <th>Operator</th>
 * <th>Memo</th>
 * </tr>
 * <tr>
 * <td>2021/1/4 14:46</td>
 * <td>tianshangzhu</td>
 * <td>Create</td>
 * </tr>
 * </table>
 *
 * @author tianshangzhu
 * @version 1.0.0
 * @since 1.0.0
 */
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("ASSISTANT_USER")
public class User implements Serializable {


    private static final long serialVersionUID = 2324228585147407812L;
    /**
     * 用户ID
     */
    @TableId(value = "USER_ID", type = IdType.ASSIGN_UUID)
    private String userId;

    /**
     * 用户工号
     */
    @TableField("USER_JOB_NUMBER")
    private String userJobNumber;

    /**
     * 用户姓名
     */
    @TableField("USER_NAME")
    private String userName;

    /**
     * 用户性别
     */
    @TableField("USER_SEX")
    private String userSex;

    /**
     * 用户手机号
     */
    @TableField("USER_PHONE")
    private String userPhone;

    /**
     * 用户电话
     */
    @TableField("USER_TELEPHONE")
    private String userTelephone;

    /**
     * 用户证件类型
     */
    @TableField("USER_CERTIFICATE_TYPE")
    private String userCertificateType;

    /**
     * 用户证件号码
     */
    @TableField("USER_CERTIFICATE_NUMBER")
    private String userCertificateNumber;

    /**
     * 用户入职时间
     */
    @TableField("USER_ENTRY_TIME")
    private Date userEntryTime;

    /**
     * 用户在职状态
     */
    @TableField("USER_WORKING_STATUS")
    private String userWorkingStatus;

    /**
     * 用户地址
     */
    @TableField("USER_ADDRESS")
    private String userAddress;

    /**
     * 用户领导工号
     */
    @TableField("USER_LEADER_JOB_NUMBER")
    private String userLeaderJobNumber;

    /**
     * 用户部门名称
     */
    @TableField("USER_DEPARTMENT_NAME")
    private String userDepartmentName;

    /**
     * 是否启用
     */
    @TableField("IS_ENABLE")
    private Boolean enableFlag;

	/**
	 * 用户登录账号
	 */
	@TableField("USER_LOGIN_ACCOUNT_NUMBER")
	private String userLoginAccountNumber;

    /**
     * 用户登录密码
     */
    @TableField("USER_LOGIN_PASSWORD")
    private String userLoginPassword;

    /**
     * 用户手势登录密码
     */
    @TableField("USER_LOGIN_HAND_PASS")
    private String userLoginHandPass;

    /**
     * 是否开启手势密码
     */
    @TableField("USER_LOGIN_HAND_PASS_ENABLE")
    private Boolean enableHandPass;

    /**
     * 用户简介
     */
    @TableField("USER_INTRODUCTION")
    private String userIntroduction;

    /**
     * 用户邮箱
     */
    @TableField("USER_EMAIL")
    private String userEmail;

    /**
     * 省级地区名称
     */
    @TableField("PROVINCE_LEVEL_REGION_NAME")
    private String provinceLevelRegionName;

    /**
     * 市级地址行省级地区编码政区划编码
     */
    @TableField("PROVINCE_LEVEL_REGION_CODE")
    private String provinceLevelRegionCode;

    /**
     * 市级地区名称
     */
    @TableField("CITY_LEVEL_REGION_NAME")
    private String cityLevelRegionName;

    /**
     * 市级地区编码
     */
    @TableField("CITY_LEVEL_REGION_CODE")
    private String cityLevelRegionCode;

    /**
     * 区县级地区名称
     */
    @TableField("COUNTY_LEVEL_REGION_NAME")
    private String countyLevelRegionName;

    /**
     * 区县级地区编码
     */
    @TableField("COUNTY_LEVEL_REGION_CODE")
    private String countyLevelRegionCode;

    /**
     * 用户详细地址
     */
    @TableField("USER_DETAIL_ADDRESS")
    private String userDetailAddress;

    /**
     * 是否显示简介
     */
    @TableField("IS_DISPLAY_INTRODUCTION")
    private Boolean displayIntroductionFlag;

    /**
     * 是否显示邮箱
     */
    @TableField("IS_DISPLAY_EMAIL")
    private Boolean displayEmailFlag;

    /**
     * 是否显示地址
     */
    @TableField("IS_DISPLAY_ADDRESS")
    private Boolean displayAddressFlag;

    /**
     * 是否显示工号
     */
    @TableField("IS_DISPLAY_JOB_NUMBER")
    private Boolean displayJobNumberFlag;

    /**
     * 是否显示手机号
     */
    @TableField("IS_DISPLAY_PHONE")
    private Boolean displayPhoneFlag;

    /**
     * 是否显示岗位
     */
    @TableField("IS_DISPLAY_POSITION")
    private Boolean displayPositionFlag;

    /**
     * 是否显示微信号码
     */
    @TableField("IS_DISPLAY_WECHAT_NUMBER")
    private Boolean displayWechatNumberFlag;

    /**
     * 是否删除
     */
    @TableField("IS_DELETE")
    @TableLogic(value = "0",delval = "1")
    private Boolean deleteFlag = false;

    /**
     * 用户生日
     */
    @TableField("USER_BIRTHDAY")
    private Date userBirthday;

    /**
     * 用户微信号码
     */
    @TableField("USER_WECHAT_NUMBER")
    private String userWechatNumber;

    /**
     * 用户机构编码
     */
    @TableField("USER_ORGANIZATION_CODE")
    private String userOrganizationCode;

    /**
     * 用户机构名称
     */
    @TableField("USER_ORGANIZATION_NAME")
    private String userOrganizationName;

    /**
     * 是否平台管理用户
     */
    @TableField("IS_PLATFORM_MANAGEMENT_USER")
    private Boolean platformManagementUserFlag;

    /**
     * 是否启用平台管理用户
     */
    @TableField("IS_ENABLE_PLATFORM_MANAGEMENT_USER")
    private Boolean enablePlatformManagementUserFlag;

    /**
     * 创建用户ID
     */
    @TableField("CREATE_USER_ID")
    private String createUserId;

    /**
     * 创建时间
     */
    @TableField("CREATE_TIME")
    private Date createTime;

    /**
     * 修改用户ID
     */
    @TableField("UPDATE_USER_ID")
    private String updateUserId;

    /**
     * 修改时间
     */
    @TableField("UPDATE_TIME")
    private Date updateTime;

    /**
     * 备注
     */
    @TableField("MEMO")
    private String memo;

    /**
     * 设置默认属性
     */
    public void setAttribute(){
        this.setEnableFlag(true);
        this.setEnableHandPass(true);
        this.setDisplayAddressFlag(true);
        this.setDisplayEmailFlag(true);
        this.setDisplayIntroductionFlag(true);
        this.setDisplayEmailFlag(true);
        this.setDisplayJobNumberFlag(true);
        this.setDisplayPhoneFlag(true);
        this.setDisplayPositionFlag(true);
        this.setDisplayWechatNumberFlag(true);
    }
}
